package day16.zhiyou100;

import java.io.*;

public class Demo03 {

    // 静态代码块中
    // 构造代码块 只有该类调用它的构造方法
    /*{

    }
    */
    static  byte[] letters;
    // 该代码块永远只会加载一次
    static {
        letters = new byte[26+26+10];
        for (byte i = 65; i <= 90; i++) { // 26
            letters[i-65] = i;// 0,1,2,....
            letters[i-65+26] = (byte) (i+32);// a--->z
        }
        // 0-9
        for (byte i = 0; i < 10; i++) {
            letters[i+52] = (byte) (48+i);
        }
    }

    // 构造方法
    public static void m1() throws IOException {
        // FileOutputStream(File file)
        File file = new File("D:\\aa\\cc.txt");
        OutputStream os = new FileOutputStream(file);
        // 我想要往cc.txt文件中写入一个字节(整数byte) 'A'--->65
        //os.write(65);
        // 关闭打开的流
        //os.close();

        // 'A' 'B' 'C' 'D',......
        // 65 ..........90
        // 96
        // 使用数组
        //os.write(letters);
        // 关闭
        //os.close();
        // void write(byte[] b, int off, int len)  将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
        // 只存储小写字母
        os.write(letters,26,26);
        // 关闭流
        os.close();

    }
    public static void m2() throws IOException {
        File file = new File("D:\\aa\\cc.txt");
        // FileOutputStream(File file,boolean append)
        OutputStream os = new FileOutputStream(file,true);
        // 想要在cc.txt文件中追加大写字母 A-Z
        os.write(letters,0,26);
        // 关闭流
        os.close();
    }

    public static void main(String[] args) throws IOException {
        m2();
    }


}
